  // npm install html2canvas --save jsPdf
  // npm install jsPdf --save
  
  /**
   * 生成dom画布
   * 如果是某个dom，同样需要将整个页面挪到body下再截取
   */
   generateBase64Picture(contentWrap: HTMLElement) {
    return new Observable<HTMLCanvasElement>(observer => {
      ionContent.style.height = `${contentWrap.offsetHeight}px`;
      html2canvas(contentWrap).then(canvas => {
        observer.next(canvas);
        observer.complete();



        // canvas.toDataURL('image/jpeg', 1.0);
      });
    });
  }


  /**
   * 根据html2canvas生成一整页pdf
   * pdf.output('dataurlstring') 生成base64
   */
  generateFullPagePDF(canvas: HTMLCanvasElement) {
    let contentWidth = canvas.width;
    let contentHeight = canvas.height;
    let pdfWidth = ((contentWidth + 10) / 2) * 0.75;
    let pdfHeight = ((contentHeight + 200) / 2) * 0.75; // 500为底部留白
    let imgWidth = pdfWidth;
    let imgHeight = (contentHeight / 2) * 0.75; //内容图片这里不需要留白的距离
    let pageData = canvas.toDataURL('image/jpeg', 1.0);
    let pdf = new jsPDF(undefined, 'pt', [pdfWidth, pdfHeight]);
    pdf.addImage(pageData, 'jpeg', 0, 0, imgWidth, imgHeight);
    return pdf;
  }

  /**
   * 根据html2canvas生成a4大小的分页pdf
   * pdf.output('dataurlstring') 生成base64
   */
  paginationGenerationPDF(canvas: HTMLCanvasElement) {
    var contentWidth = canvas.width;
    var contentHeight = canvas.height;
    //一页pdf显示html页面生成的canvas高度;
    var pageHeight = (contentWidth / 592.28) * 841.89;
    //未生成pdf的html页面高度
    var leftHeight = contentHeight;
    //页面偏移
    var position = 0;
    //a4纸的尺寸[595.28,841.89]，html页面生成的canvas在pdf中图片的宽高
    var imgWidth = 595.28;
    var imgHeight = (592.28 / contentWidth) * contentHeight;
    var pageData = canvas.toDataURL('image/jpeg', 1.0);
    var pdf = new jsPDF(undefined, 'pt', 'a4');
    //有两个高度需要区分，一个是html页面的实际高度，和生成pdf的页面高度(841.89)
    //当内容未超过pdf一页显示的范围，无需分页
    if (leftHeight < pageHeight) {
      pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);
    } else {
      while (leftHeight > 0) {
        pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight);
        leftHeight -= pageHeight;
        position -= 841.89;
        //避免添加空白页
        if (leftHeight > 0) {
          pdf.addPage();
        }
      }
    }
    return pdf;
  }